home *** CD-ROM | disk | FTP | other *** search
/ CD Action 72 - Disc 2 / cdaction-72-2.iso / #bonus / bonus 1.exe / programy / winglide101 / readme.txt < prev    next >
Text File  |  1999-05-03  |  18KB  |  371 lines

  1. WinGlide v1.01 - 5/3/1999
  2. Enhancements Copr. 1998, 1999 Chris Dohnal
  3. cwdohnal@ucdavis.edu
  4.  
  5. Based on
  6. WinGlide v0.5 - 1/4/1998
  7. Copr. 1998 Justin Frankel/Nullsoft, Inc.
  8. justin@nullsoft.com
  9.  
  10. Thanks to
  11. Justin Frankel for WinGlide v0.5
  12. Andy Murdoch for the MMX detection code
  13. Everyone else who has helped with WinGlide
  14.  
  15. What is WinGlide?
  16. WinGlide allows 3Dfx Voodoo Graphics boards to output to a window.
  17. The included glide2x.dll works by intercepting a few calls to the 3Dfx card and copying each
  18. completed frame from the 3Dfx card to your 2D card.
  19.  
  20. The included glide2x.dll needs the glide2x.dll from 3Dfx to work properly.  You should leave the
  21. 3Dfx glide2x.dll in your Windows\System directory and put the included glide2x.dll in the same
  22. directory as the application you want to use it with.
  23.  
  24. DO NOT COPY THE INCLUDED GLIDE2X.DLL INTO YOUR WINDOWS OR SYSTEM DIRECTORIES.
  25.  
  26.  
  27. WinGlide mode settings
  28. --------------------------------------------------------------------------------
  29. WinGlide v1.01 supports four modes of operation:
  30. - B2 WinGlide
  31. - StretchBlt WinGlide
  32. - Overlay WinGlide
  33. - Off-screen Surface WinGlide
  34.  
  35. The [Mode] section of wg.ini is used to tell WinGlide what mode it should use.
  36. Each available WinGlide mode will have a key in the [Mode] section of wg.ini.
  37. Only one of these keys should be set equal to 1 at any one time.
  38. - To use B2 WinGlide, set the B2WinGlide key equal to 1 and set all of the other mode
  39. keys equal to 0, or comment them out by putting a ; in front of them, or do not include
  40. them in the ini file at all.
  41. - To use StretchBlt WinGlide, set the StretchBltWinGlide key equal to 1 and set all of
  42. the other mode keys equal to 0, comment them out, or do not include them in the ini file.
  43. - To use Overlay WinGlide, set the OverlayWinGlide key equal to 1 and set all of the
  44. other mode keys equal to 0, comment them out, or do not include them in the ini file.
  45. - To use Off-screen Surface WinGlide, set the OffScreenSurfaceWinGlide key equal to 1
  46. and set all of the other mode keys equal to 0, comment them out, or do not include
  47. them in the ini file.
  48.  
  49. To use B2 WinGlide:
  50. -------------------
  51. [Mode]
  52. B2WinGlide=1
  53. StretchBltWinGlide=0
  54. OverlayWinGlide=0
  55. OffScreenSurfaceWinGlide=0
  56.  
  57.     - or -
  58.  
  59. [Mode]
  60. B2WinGlide=1
  61.  
  62. To use Overlay WinGlide:
  63. ------------------------
  64. [Mode]
  65. B2WinGlide=0
  66. StretchBltWinGlide=0
  67. OverlayWinGlide=1
  68. OffScreenSurfaceWinGlide=0
  69.  
  70.     - or -
  71.  
  72. [Mode]
  73. OverlayWinGlide=1
  74.  
  75. Make similar modifications to the mode section of the ini file to use other WinGlide modes.
  76.  
  77.  
  78. Notes that apply to all of WinGlide's modes
  79. --------------------------------------------------------------------------------
  80. * Frame rate goes way down.
  81. * Possibly incompatible with some applications.  Not all of glide2x.dll is passed through.
  82. * Will not work with applications that do not supply a window handle.
  83.  
  84.  
  85. B2 WinGlide v1.01
  86. --------------------------------------------------------------------------------
  87. * Designed to be used with 3Dfx OpenGL Beta 2 or 3Dfx OpenGL Beta 2.1 to support some programs
  88. that use OpenGL to render to a single window.  Also works with the MiniGL.
  89. * Programs that use OpenGL to render to multiple windows are not supported.
  90. * Handles window resizing.
  91. * Has gamma correction support.
  92. * Has MMX optimizations.
  93. * Will not work with scanline interleaved systems.
  94. * Supports multi-threading for improved performance on multi-processor systems.
  95.  
  96.  
  97. StretchBlt WinGlide v1.01
  98. --------------------------------------------------------------------------------
  99. * The output window can be stretched.
  100. * Only use this WinGlide mode with a program that displays its output in a fixed sized window
  101. with a title bar.  WinGlide will modify this window and give it resizing borders so that the
  102. output can be stretched.
  103. * Has gamma correction support.
  104. * Has MMX optimizations.
  105. * Will not work with scanline interleaved systems.
  106. * Supports multi-threading for improved performance on multi-processor systems.
  107.  
  108.  
  109. Overlay WinGlide v1.01
  110. --------------------------------------------------------------------------------
  111. * Uses hardware overlays to boost performance and add additional features to WinGlide.
  112. * Requires DirectDraw and a video card that supports RGB 565 or YUY2 hardware overlays.
  113. * The output window can be stretched to any size supported by your video hardware.  Many video
  114. cards will support stretching an overlay with interpolation at no performance cost.  With this
  115. feature, you can use a low resolution like 320x240 or 400x300 to get a good framerate and then
  116. stretch the output window so it covers more of the screen without reducing the framerate.
  117. Stretching with interpolation should also provide better image quality than pixel doubling.
  118. * Only use this WinGlide mode with a program that displays its output in a fixed sized window
  119. with a title bar.  WinGlide will modify this window and give it resizing borders so that the
  120. output can be stretched.
  121. * Has the option to use a double buffered or triple buffered overlay for improved performance.
  122. * If WinGlide is unable to clip the overlay surface it is using for some reason and it is covering
  123. up other windows, it is possible to make the overlay go away by minimizing the window displaying
  124. the overlay.
  125. * Has gamma correction support.
  126. * Has MMX optimizations.
  127. * Will not work with scanline interleaved systems.
  128.  
  129.  
  130. Off-screen Surface WinGlide v1.01
  131. --------------------------------------------------------------------------------
  132. * Requires DirectDraw and a video card that supports off-screen YUY2 surfaces and functions
  133. that can StretchBlt data from these surfaces to the primary surface.
  134. * The output window can be stretched.
  135. * Only use this WinGlide mode with a program that displays its output in a fixed sized window
  136. with a title bar.  WinGlide will modify this window and give it resizing borders so that the
  137. output can be stretched.
  138. * Has gamma correction support.
  139. * Has MMX optimizations.
  140. * Will not work with scanline interleaved systems.
  141.  
  142.  
  143. WinGlide features and ini file format:
  144. --------------------------------------------------------------------------------
  145. WinGlide reads configuration information from the ini file wg.ini.  WinGlide and this ini file
  146. should be placed in the same directory as the application that is being used with WinGlide.
  147. - Some settings in this ini file are only used to by certain WinGlide modes.  This will be noted
  148. in the description of the settings.
  149. - WinGlide will automatically detect if certain settings should be used.  Unless it is necessary
  150. to override the auto detect code, the keys for these settings will not need to be present in the
  151. ini file.  Descriptions of settings that are automatically detected by WinGlide will have (detected)
  152. listed at the beginning of the description.
  153.  
  154. Here's a sample ini file:
  155. --- Beginning of wg.ini ---
  156. [WinGlide]
  157. MMX=0
  158. Multi-threading=0
  159. 320x240Fix=0
  160. SystemMenuOptions=0
  161.  
  162. [Mode]
  163. B2WinGlide=1
  164. StretchBltWinGlide=0
  165. OverlayWinGlide=0
  166. OffScreenSurfaceWinGlide=0
  167.  
  168. [GammaCorrection]
  169. Enable=1
  170. Red=1.7
  171. Green=1.7
  172. Blue=1.7
  173.  
  174. [Overlay]
  175. BackBufferCount=0
  176. ColorKeyClipping=0
  177. WindowClipping=0
  178. Red=112
  179. Green=112
  180. Blue=112
  181. UseFourCCSurface=0
  182. FourCC=YUY2
  183. --- End of wg.ini ---
  184.  
  185.  
  186. [WinGlide] section of wg.ini
  187. ----------------------------
  188.  
  189. MMX (detected)
  190. --------------
  191. This version of WinGlide has MMX detection.  If the MMX key is not present in the ini file or if it
  192. is set to 2, WinGlide will automatically use MMX instructions if it detects a processor that
  193. supports MMX.
  194.  
  195. Overriding the MMX detection:
  196. Setting the MMX key to 1 will enable WinGlide's MMX support and setting it to 0 will tell
  197. WinGlide not to use MMX instructions.  Since WinGlide does not verify that it is running on
  198. an MMX capable processor when overriding MMX detection, if the MMX key is set to 1 and
  199. WinGlide is run on a processor that does not support MMX instructions, an invalid instruction
  200. exception will be generated.
  201.  
  202. Multi-threading (detected)
  203. --------------------------
  204. WinGlide's multi-threading support can improve performance on multi-processor systems.
  205. This version of WinGlide has multi-processor detection and can automatically enable multi-threading
  206. if it detects that there are multiple processors.  If the Multi-threading key is not present in the
  207. ini file or if it is set to 2, WinGlide will automatically enable multi-threading if it detects
  208. that it is running on a multi-processor system.
  209.  
  210. Overriding the multi-processor detection:
  211. Setting the Multi-threading key to 1 will enable WinGlide's multi-threading support and setting the
  212. Multi-threading key to 0 will disable WinGlide's multi-threading support.
  213.  
  214. WinGlide's multi-threading optimizations are only available when using B2 WinGlide mode or StretchBlt
  215. WinGlide mode.  Overlay WinGlide mode and Off-screen Surface WinGlide mode do not have multi-threading
  216. optimizations.
  217.  
  218. 320x240Fix
  219. ----------
  220. Setting the 320x240Fix key equal to 1 will enable a fix in WinGlide that allows 320x240 windowed
  221. to work when used with 3Dfx MiniGL v1.46.  If you cannot use 320x240 windowed but other windowed
  222. resolutions work, see if enabling this fix makes 320x240 windowed work.
  223.  
  224. SystemMenuOptions
  225. -----------------
  226. Setting the SystemMenuOptions key to 1 will allow WinGlide to add menu items to the system menu.
  227. Setting this key to 0 will leave the system menu unchanged.  If you are using WinGlide with an
  228. application that adds its own menu items to the system menu, this option should be disabled because
  229. it could cause WinGlide to interfere with the processing of those menu items.
  230.  
  231.  
  232. [GammaCorrection] section of wg.ini
  233. -----------------------------------
  234.  
  235. Enable
  236. ------
  237. Set the Enable key to 1 to enable gamma correction or 0 to disable gamma correction.
  238.  
  239. Red, Green, and Blue
  240. --------------------
  241. The Red, Green, and Blue keys control the level of red, green, and blue gamma correction.  WinGlide
  242. will accept values ranging from 0.0 to 5.0.  Values below 1.0 will make things darker and values
  243. above 1.0 will make things brighter.  1.7 is the default value for all three of these keys.
  244.  
  245.  
  246. [Overlay] section of wg.ini
  247. ---------------------------
  248. * Many settings in the [Overlay] section are only used by Overlay WinGlide mode.
  249. * Some settings in the [Overlay] section are used by both Overlay WinGlide mode and Off-screen Surface
  250. WinGlide mode.
  251.  
  252. BackBufferCount
  253. ---------------
  254. Set the BackBufferCount key to 0 to use a single buffered overlay, 1 to use a double buffered
  255. overlay, or 2 to use a triple buffered overlay.  A double buffered overlay can prevent tearing
  256. and it will require twice as much video memory as a single buffered overlay.  A triple buffered
  257. overlay can prevent tearing like a double buffered overlay and it may provide better performance
  258. compared to a double buffered overlay.  A triple buffered overlay will require three times as
  259. much video memory as a single buffered overlay.
  260.  
  261. ColorKeyClipping (detected)
  262. ---------------------------
  263. Setting the ColorKeyClipping key to 1 will enable destination color key clipping for WinGlide's
  264. overlay surface and setting it to 0 will disable destination color key clipping.  Only enable this
  265. key if the video hardware being used with WinGlide supports clipping overlay surfaces by using
  266. destination color keying.  Do not enable both the ColorKeyClipping and WindowClipping keys at
  267. the same time since this is not supported.  It is recommended that these two keys are not present
  268. in the ini file so that WinGlide can automatically take care of detecting and enabling the kind of
  269. overlay clipping supported by the video hardware being used with WinGlide.
  270.  
  271. WindowClipping (detected)
  272. -------------------------
  273. Setting the WindowClipping key to 1 will enable the clipping of WinGlide's overlay surface with a
  274. DirectDraw clipper.  Only enable this key if the video hardware being used with WinGlide supports
  275. clipping overlay surfaces by using a DirectDraw clipper.  Do not enable both the WindowClipping
  276. and ColorKeyClipping keys at the same time since this is not supported.  It is recommended that
  277. these two keys are not present in the ini file so that WinGlide can automatically take care of
  278. detecting and enabling the kind of overlay clipping supported by the video hardware being used
  279. with WinGlide.
  280.  
  281. Red, Green, and Blue
  282. --------------------
  283. The Red, Green, and Blue keys are used to set the background color of the window being used with
  284. WinGlide.  This background color is used by WinGlide when it clips its overlay surface with
  285. destination color keying.  Valid values for each of these three keys are in the range 0 to 255.
  286. In order for destination color keying to work well, you should choose a background color that
  287. is not commonly used in other applications.  112 is the default value for all three of these keys.
  288.  
  289. UseFourCCSurface
  290. ----------------
  291. The UseFourCCSurface key tells WinGlide to use a surface defined by a FourCC if this key is set to 1.
  292. WinGlide will use an RGB surface if this key is set to 0.
  293.  
  294. If Overlay WinGlide mode is being used, in most cases, it is recommended that this key be set to 0 so
  295. that WinGlide will use an RGB surface.  It is possible to use an overlay surface defined by a FourCC
  296. if this is supported by the video hardware being used with Overlay WinGlide.
  297.  
  298. If Off-screen Surface WinGlide mode is being used, this key must be set to 1 because this mode only
  299. supports using surfaces that are defined by a FourCC.
  300.  
  301. FourCC
  302. ------
  303. The FourCC key tells WinGlide what kind of FourCC surface to use if the UseFourCCSurface key is set
  304. to 1.  This version of WinGlide only supports the FourCC YUY2 so this key should always be set equal
  305. to YUY2.
  306.  
  307.  
  308. Getting Overlay WinGlide to restore the overlay surface in video memory if it is lost
  309. -------------------------------------------------------------------------------------
  310. If the overlay surface in video memory used by Overlay WinGlide is lost, Overlay WinGlide will
  311. attempt to restore the surface if the window is resized.  Overlay WinGlide may lose its overlay
  312. surface in video memory when the video mode is changed or when a program that uses a DirectDraw
  313. full screen video mode is switched to.
  314.  
  315. Overlay WinGlide error messages
  316. -------------------------------
  317. Overlay WinGlide will display error messages when it cannot get its overlay to be displayed.
  318. Some of these error messages can be confusing because they do not directly describe the error
  319. that occurred.
  320. Here are some examples:
  321. 1. If you run Overlay WinGlide, switch to a higher resolution video mode that does not leave
  322. enough video memory for the overlay surface and then resize the window so that Overlay WinGlide
  323. tries to restore the surface, it may say "Invalid object" rather than "Out of memory".
  324. 2. Many of the error messages are based on the error codes returned by DirectDraw which do not
  325. always give a good description of what went wrong.  Overlay WinGlide will usually say "Invalid
  326. window size" when I choose a size that does not work because of the minimum overlay stretch
  327. factor but if I change the window size to certain size ranges, it will say "No stretch hardware"
  328. instead.
  329.  
  330. Tips for getting Overlay WinGlide to work on your computer
  331. ----------------------------------------------------------
  332. If you do not see anything in the window after the application being used with WinGlide has
  333. finished initializing, your video card may have a minimum overlay stretch factor that is greater
  334. than 1.  Make the window larger or maximize it to see if the overlay will start working.  Also,
  335. try starting the application at a low resolution such as 320x240 so that there will be more room
  336. to make the window larger.
  337.  
  338. Sometimes Quake 2 will capture the mouse, preventing you from moving or resizing the window.
  339. To move or resize the window, bring the console down so that you can use the mouse again or
  340. make another window active and then click on the title bar or resizing border of the inactive
  341. Quake 2 window.
  342.  
  343. If you are running Quake 2 at 512x384 or 640x480 and cannot get overlays to work (possibly
  344. because of a minimum overlay stretch factor that is too large), you can press Alt+Enter to
  345. tell Quake 2 to switch back to full screen.
  346.  
  347. If you have the DirectX control panel applet that comes with the DirectX 5 SDK, you can see what
  348. your minimum and maximum overlay stretch factors are by looking at the overlay capabilities on
  349. the DirectDraw tab.  If your video card does not support overlays, this can also be determined by
  350. looking at the information reported on the DirectDraw tab.
  351.  
  352. Running GLQuake or Quake 2 at 320x240 and stretching the overlay to whatever size you want the
  353. output window to be should give you a very playable frame rate.  400x300 will be slower but
  354. should still be able to provide a decent frame rate with improved image quality over 320x240.
  355.  
  356. Overlays require extra video memory.  If you are running at a high resolution on a 2MB video
  357. card, there may not be enough memory left to create the overlay.  The number of bytes required
  358. by the overlay is equal to width * height * 2.  A 640x480 overlay requires 640 x 480 x 2 =
  359. 614.4KB.  A 320x240 overlay only requires 153.6KB.  The width and height used to calculate the
  360. memory needed by the overlay is the width and height that the Glide application is using, not
  361. the width and height of the stretched output window.  Running GLQuake at 320x240 and stretching
  362. the output window to 640x480 (or any other size supported by the hardware) would still only
  363. require 153.6K of video memory.
  364.  
  365.  
  366. --------------------------------------------------------------------------------
  367. If you have any questions or comments about this version of WinGlide, I can be reached at
  368. cwdohnal@ucdavis.edu
  369.  
  370. Chris Dohnal
  371.